<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>购物车</title>
    <style>
      thead {
        background-color: #f5f5f5;
      }
      th,
      td {
        border: 1px solid #aaa;
        padding: 8px 12px;
        text-align: center;
      }
    </style>
  </head>
  <body>
    <table>
      <thead>
        <tr>
          <th>编号</th>
          <th>书籍名称</th>
          <th>出版日期</th>
          <th>价格</th>
          <th>购买数量</th>
          <th>操作</th>
        </tr>
      </thead>
    </table>
    <h2 class="price">总价格:¥<span class="price-count">0</span></h2>
    <script>
      //1.先拿到数据
      let books = [
        {
          id: 1,
          name: '《算法导论》',
          date: '2006-09',
          price: 85.0,
          count: 3,
        },
        {
          id: 2,
          name: '《UNIX编程艺术》',
          date: '2006-02',
          price: 59.0,
          count: 2,
        },
        {
          id: 3,
          name: '《编程珠玑》',
          date: '2008-10',
          price: 39.0,
          count: 5,
        },
        {
          id: 4,
          name: '《代码大全》',
          date: '2006-03',
          price: 128.0,
          count: 8,
        },
      ];
      let thead = document.querySelector('thead');
      let tbody = document.createElement('tbody');
      thead.after(tbody);
      for (let i = 0; i < books.length; i++) {
        tbody.innerHTML += `
        <tr>
        <td>${books[i].id}</td>
        <td>${books[i].name}</td>
        <td>${books[i].date}</td>
        <td>${books[i].price}</td>
        <td>${books[i].count}</td>
        <td>
          <button class ='del'>删除</button>
          </td>
      </tr>
      `;
      }
      //删除book及其对应的价格
      let price = document.querySelector('.price-count');
      let allprice = 0;
      tbody.addEventListener('click', (e) => {
        if (e.target.className === 'del') {
          let row = e.target.parentNode.parentNode;
          let thisPrice = row.children[3].innerHTML * row.children[4].innerHTML;
          allprice -= thisPrice;
          price.innerHTML = allprice;
          row.remove();
        }
      });
      //计算总价
      let rows = [...document.querySelectorAll('tbody>tr')];
      rows.forEach((ele) => {
        let priceadd = ele.children[3].innerHTML * ele.children[4].innerHTML;
        allprice += priceadd;
      });
      price.innerHTML = allprice;
    </script>
  </body>
</html>
